//
//  Test.c
//  String
//
//  Created by Xavier on 2023/11/4.
//

#include "StringFunctionAvaliable.h";

void menu () {
    printf("***************************************************\n");
    printf("请进行操作-输入操作对应的编号！\n");
    printf(" 1、串的创建\n");
    printf(" 2、求串长\n");
    printf(" 3、两个串的比较\n");
    printf(" 4、清空串\n");
    printf(" 5、两个串的连接\n");
    printf(" 6、求子串\n");
    printf(" 7、求子串在主串的位置\n");
    printf(" 0、退出操作\n");
    printf("***************************************************\n");
}

int main(int argc, const char * argv[]) {
//    menu();
//    int num = -2;
//    while (num != 0) {
//        printf("请输入：");
//        scanf("%d", &num);
//        switch (num) {
//            case 1:
//                printf("请输入串的内容：");
//                char* a;
//                scanf("%*[\n]%[^\n]", &a);
//                HString str1;
//                HStringCreate(&str1, &a);
//                printf("str创建成功：");
//                HStringPrint(&str1);
//                getchar();
//                menu();
//                break;
//            case 2:
//                printf("求串长\n");
//                printf("请输入你要求串长的串：");
//                char* b;
//                scanf("%*[\n]%[^\n]", &b);
//                HString str2;
//                HStringCreate(&str2, &b);
//                printf("strlen:%d\n", HStringLength(&str2));
//                menu();
//                break;
//            case 3:
//                printf("两个串的比较\n");
//                printf("请输入你要对比的两个串, The first:");
//                char* c;
//                scanf("%*[\n]%[^\n]", &c);
//                HString str3;
//                HStringCreate(&str3, &c);
//                printf("请输入你要对比的两个串, The second:");
//                char* d;
//                scanf("%*[\n]%[^\n]", &d);
//                HString str4;
//                HStringCreate(&str4, &d);
//                int num = HStringCompare(&str3, &str4);
//                    if (num == 1) {
//                        printf("str1>str2\n");
//                    }else if (-1 == num) {
//                        printf("str1<str2\n");
//                    }else {
//                        printf("str1=str2\n");
//                    }
//                menu();
//                break;
//            case 4:
//                printf("清空串\n");
//                menu();
//                break;
//            case 5:
//                printf("两个串的连接\n");
//                printf("请输入你要连接的两个串, The first:");
//                char* e;
//                scanf("%*[\n]%[^\n]", &e);
//                HString str5;
//                HStringCreate(&str5, &e);
//                printf("请输入你要连接的两个串, The second:");
//                char* f;
//                scanf("%*[\n]%[^\n]", &f);
//                HString str6;
//                HStringCreate(&str6, &f);
//                HString cur;
//                cur = HStringConnection(&str5, &str6);
//                HStringPrint(&cur);
//                menu();
//                break;
//            case 6:
//                printf("求子串\n");
//                printf("请输入一个Mainstring：");
//                char* g;
//                scanf("%*[\n]%[^\n]", &g);
//                HString str7;
//                HStringCreate(&str7, &g);
//                printf("请输入截取子串的起始位置：");
//                int pos;
//                scanf("%d", &pos);
//                printf("请输入截取子串的长度：");
//                int len;
//                scanf("%d", &len);
//                HString cur2;
//                cur2.length = len;
//                //HStringCreate(&cur2, "     ");
//                cur2 = GetSubstring(&str7, pos, len);
//                HStringPrint(&cur2);
//                menu();
//                break;
//            case 7:
//                printf("求子串在主串的位置\n");
//                printf("请输入一个Mainstring：");
//                char* h;
//                scanf("%*[\n]%[^\n]", &h);
//                HString str8;
//                HStringCreate(&str8, &h);
//                printf("请输入一个Substring：");
//                char* i;
//                scanf("%*[\n]%[^\n]", &i);
//                HString str9;
//                HStringCreate(&str9, &i);
//                printf("Substring在Mainstring第%d个位置\n", GetSubstringIndexOfMainstring(&str8, &str9, 1));
//                menu();
//                break;
//            case 0:
//                break;
//            default:
//                printf("输入错误，请输入操作对应编号(0—7)\n");
//                break;
//        }
//        if (num == 0) {
//            printf("成功退出！\n");
//        }
//    }
    

    HString str1;
    HStringCreate(&str1, "Good_Morning!");
    printf("str1:");
    HStringPrint(&str1);
    printf("str1的长度为：%d\n", HStringLength(&str1));
    
    HString str2;
    HStringCreate(&str2, "Morning!");
    printf("str2:");
    HStringPrint(&str2);
    printf("str1的长度为：%d\n", HStringLength(&str2));
    
    printf("把str1和str2拼接后为：");
    HString cur;
    cur = HStringConnection(&str1, &str2);
    HStringPrint(&cur);
    
    int num = HStringCompare(&str1, &str2);
    if (num == 1) {
        printf("str1>str2\n");
    }else if (-1 == num) {
        printf("str1<str2\n");
    }else {
        printf("str1=str2\n");
    }
    //printf("num:%d\n", num);
    //printf("把str1和str2对比,str1>str2:输出1,反之输出-1,相等输出0：%d\n", HStringCompare(&str1, &str2));
    
    int pos=5, len=2;
    printf("将str1的%d位置起取%d个", pos, len);
    HString* cur2;
    cur2->length = len;
    printf("cur2.length:%d\n", cur2->length);
    cur2 = GetSubstring(&str1, pos, len);
    printf("ccur2.length:%d\n", cur2->length);
    printf("结果为：");
    HStringPrint(cur2);
    
    printf("str2在str1第%d个位置\n", GetSubstringIndexOfMainstring(&str1, &str2, 1));
}
